1. Field of the Invention
This invention relates to wireless communication and more particularly to an apparatus that receives transmission of data synchronized to a clock that is out of phase with the clock of the apparatus.
This invention also relates to microprocessor system architecture, and more particularly to a microprocessor architecture that allows read-only memory (ROM) microcode to be effectively altered or enhanced without the need to reprogram or replace the ROM.
2. Description of Related Art
Bluetooth is the name of a well known and open technical specification for wireless communication of data and voice. Bluetooth allows the replacement of very short range cables (wires) now used to connect one device to another with one universal short-range radio link; for example, a computer can thereby communicate with its printer via a radio link instead of a cable. Bluetooth is characterized by operation in the 24 GHz and at variable transmission power depending on the distance between devices. For example, for a power class 2 Bluetooth device, the transmission power ranges from 1 mW to 2.5 mW. Bluetooth also allows computing devices to connect to a communicating device via a radio link. For example, a computer can communicate with a nearby cell phone via a radio link to access the Internet. Bluetooth units (radios) connect to each other in xe2x80x9cpiconetsxe2x80x9d, which are formed by a master unit connecting up to seven slave units. In a piconet, the slave units are synchronized to the master unit""s clock and hopping sequence. See xe2x80x9cSpecification of the Bluetooth System-Core v1.0bxe2x80x9d available from the Bluetooth Special Interest Group at its web site.
A typical Bluetooth conforming radio includes an RF (radio frequency) circuit and a baseband circuit. The RF circuit receives a frequency modulated electromagnetic signal (i.e., FM signal) carrying data synchronized to the clock signal (xe2x80x9cexternal clockxe2x80x9d) of another Bluetooth radio. The baseband circuit includes a demodulator circuit that extracts the data and the external clock signal from the FM signal (symbol timing recovery). The baseband circuit also includes a PLL (phase lock loop) circuit that synchronizes the phase of the internal clock of the baseband circuit to the phase of the external clock to allow data processing circuits of the baseband to process the extracted data. The PLL circuit is necessary because even if the internal clock and the external clock may have substantially the same frequency, they may not have the same phase. Furthermore, interference to the FM signal as it travels through the air may also distort the representation of the frequency of the external clock in the FM signal.
A microprocessor is a central processing unit (CPU) enclosed in one integrated circuit (IC) package. Because of their small size and low cost, microprocessors have revolutionized digital system design technology, giving the designer the capability to create structures that were previously uneconomical. Microprocessors are used in a wide variety of applications. They can function as a CPU in a general purpose computer or as a processor unit in a special purpose, automated system.
Microprocessor systems usually incorporate several different types of memory devices to hold data for processing and instructions for system control. Memory devices come in a wide variety of forms. Two of the more common forms are generally referred to as xe2x80x9cread-only memoryxe2x80x9d (ROM) and xe2x80x9crandom access memoryxe2x80x9d (RAM). In its simplest form, sometimes called xe2x80x9cmask-programmedxe2x80x9d, a ROM memory device is manufactured with fixed contents. The binary information stored in the ROM is made permanent during the hardware production of the unit and cannot subsequently be altered. Such a ROM memory unit performs the read operation only; it does not have a write capability. ROM is most often used to hold microcode, the lowest level instructions that directly control a microprocessor.
By contrast, a RAM is a data storage device that can perform both the read and write function. A system CPU uses its RAM as a storage area for data, calculation results, and program instructions, drawing on this storage as necessary to perform the tasks required by programs. Its binary contents can easily be changed during operation and its stored data is typically erased or lost when the device incorporating it is powered off. Part of the initial xe2x80x9cpower-upxe2x80x9d or boot routine for microprocessor systems includes the loading of desired or necessary code into RAM according to the system design.
Microprocessor systems may also incorporate some type of xe2x80x9cnon-volatilexe2x80x9d memory, such as a hard-disk. Like RAM, such memory can usually be read or written to, but unlike RAM its content is preserved until over-written, even without system power.
More recent varieties of ROM provide for some limited programming capability after manufacture. PROM (xe2x80x9cprogrammable read-only memoryxe2x80x9d) devices can be programmed by the end user, but only once. EPROM (xe2x80x9cerasable programmable read-only memoryxe2x80x9d) can be erased and then reprogrammed, but must be removed from the system to do so. EEPROM (xe2x80x9celectronic erasable read-only memoryxe2x80x9d) can be erased and programmed electrically some limited number of times with standard supply voltages while in the circuit. However, such devices come with increased cost and limitations of their own. For example, EPROM must be removed from the system to be reprogrammed, and EEPROM must be erased and reprogrammed in its entirety, not selectively. For many processing systems, especially those used to perform set, repetitive tasks, it is desirable to use the cheapest and simplest (mask-programmed) ROM, with minimal reliance on more expensive RAM or other types of memory devices.
However, in even the simplest microprocessor system it may be desirable to alter the execution of the ROM microcode to, for example, correct errors in the code or add new capabilities to it. The disclosed invention allows for alterations in the processing of ROM microcode without incurring the added expense and complexity of integrating some form of programmable ROM into the system.
In accordance with one aspect of the invention, a wireless device (e.g. radio) includes a receiver coupled to a first-in first-out memory device (FIFO). The, e.g. RF receiver includes a RF circuit that receives RF signals via an antenna, and a demodulator circuit that decodes the RF signals to data signals and recovered clock signals. The RF receiver stores the data signals into the FIFO using the recovered clock signals as write signals. In one implementation, a host device reads the data out from the FIFO with read signals synchronized to the system clock of the host device. In one variation, the write signals and the read signals are of similar frequencies. Thus, the host device can read the data received as RF signals without synchronizing its system clock to the recovered clock signals.
In another embodiment, a data processing circuit reads the data out from the FIFO with read signals synchronized to the system clock of the data processing circuit. In one implementation, the write signals and the read signals are of similar frequencies. Thus, the data processing circuit can process the data received as RF signals without synchronizing its system clock to the recovered clock signals. In one variation, the host device is coupled to the data processing circuit to receive the processed data.
Accordingly, the function performed in the prior and by PLL circuits are performed by FIFOs so that data received as RF signals may be processed by circuits without synchronizing their system clock to the recovered clock signals.
In accordance with another aspect of the invention, a microprocessor system architecture allows for the selective execution of programmed ROM microcode or, alternatively, RAM microcode if there has been a correction or update made to the ROM microcode originally programmed into the system. Patched or updated RAM microcode is utilized or executed only to the extent of changes to the ROM microcode, otherwise the ROM microcode is executed in its normal fashion.
When a patch is received, it is loaded into system RAM along with instructions or other appropriate signals to direct the execution of the patched or updated microcode from RAM instead of the existing ROM microcode. Those skilled in the art will appreciate and understand that a variety of techniques can be utilized to direct the execution of patched or updated RAM micocode rather than corresponding ROM microcode, only a few of which are discussed in some detail below.